大家好,我是Leo,今天我來介紹的是setting檔的設置
OK~~~ Let's go now!!!
asgiref==3.5.2
certifi==2022.9.24
cffi==1.15.1
charset-normalizer==2.1.1
cryptography==38.0.4
defusedxml==0.7.1
Django==4.1.3
django-allauth==0.51.0
django-cors-headers==3.13.0
django-filter==22.1
django-widget-tweaks==1.4.12
djangorestframework==3.14.0
idna==3.4
oauthlib==3.2.2
pycparser==2.21
PyJWT==2.6.0
python3-openid==3.2.0
pytz==2022.6
requests==2.28.1
requests-oauthlib==1.3.1
sqlparse==0.4.3
tzdata==2022.6
urllib3==1.26.13
pip install -r .\requestments.txt
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.google'
'website',
'rest_framework',
'rest_framework.authtoken',
'widget_tweaks',
'corsheaders',
'django_filters',
'django.contrib.sites',
]
website : app名稱
rest_framework : API框架
rest_framework.authtoken : 使用簡單的基於Token的HTTP認證方案
corsheaders : DRF實現跨域一個第三方擴展
django_filters : 可做簡易篩選的過濾器
django.contrib.sites : 可選式框架,它是將對象和功能關聯到特定網站的掛鉤
allauth.socialaccount.providers.google : 第三方的providers,可參考該鏈接來加入你想加入的providers
還記得我們上面有設定corsheaders
MIDDLEWARe內要增加一行corsheaders.middleware.CorsMiddleware
CORS_ORIGIN_ALLOW_ALL = True 允許所有跨站請求, whitelist不會被使用
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True
在這邊如未指定資料庫,預設則是default內的資料庫
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'mytest1',
'USER': 'root',
'PASSWORD': 'password',
},
'test2': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'test2',
'USER': 'root',
'PASSWORD': 'password',
},
}
DEFAULT_FILTER_BACKENDS : 默認過濾器後端可以在全局設置中使用DEFAULT_FILTER_BACKENDS來配置
DEFAULT_PERMISSION_CLASSES : 默認權限策略可以使用DEFAULT_PERMISSION_CLASSES設置進行全局設置
REST_FRAMEWORK = {
'DEFAULT_FILTER_BACKENDS': ['django_filters.rest_framework.DjangoFilterBackend'],
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),
}
SOCIALACCOUNT_QUERY_EMAIL : 請求第三方賬戶提供商的電子郵件地址
ACCOUNT_LOGOUT_ON_GET : GET不是用來修改服務器狀態的,所以將它設置為Flase
ACCOUNT_UNIQUE_EMAIL : 電子郵件唯一性,所以選True
ACCOUNT_EMAIL_REQUIRED : 用戶在使用註冊時,需要提交電子郵件地址
SOCIALACCOUNT_QUERY_EMAIL = True
ACCOUNT_LOGOUT_ON_GET= False
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_EMAIL_REQUIRED = True
SOCIALACCOUNT_PROVIDERS = {
'google': {
'SCOPE': [
'profile',
'email',
],
'AUTH_PARAMS': {
'access_type': 'online',
}
}
}
今天我們將setting檔建置完成,明天預計從admin後台創建超級使用者開始講起
我們明天見,各位掰掰~~~